#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 1.简述解释型语言和编译型语言的区别？
'''
编译型语言是将语言写成程序之后再交给编译器，编译器再将程序编译后交给系统执行。
解释型语言是将语言运行的时候交给解释器，解释器解释一行代码交给系统执行一行代码。
'''
# 2.列举你了解的Python的数据类型？
'''
int、str、bool、list、tuple
'''
# 3.写代码，有如下列表，按照要求实现每一个功能。
# li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
# 计算列表的长度并输出
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
print(len(li))
'''
# 请通过步长获取索引为偶数的所有值，并打印出获取后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
print(li[0::2])
'''
# 列表中追加元素"seven",并输出添加后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.append('seven')
print(li)
'''
# 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.insert(0, 'Tony')
print(li)
'''
# 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li[1] = 'Kelly'
print(li)
'''
# 请将列表的第3个位置的值改成 "太白"，并输出修改后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li[2] = '太白'
print(li)
'''
# 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中，并输出添加后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
l2 = [1, "a", 3, 4, "heart"]
for i in l2:
    li.append(i)
    print(li)
'''
# 请将字符串 s = "qwert"的每一个元素添加到列表li中，一行代码实现，不允许循环添加。
# 方法1：我自己想的。
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
s = "qwert"
ls1 = li+','.join(s).split(',')
print(ls1)
'''
# 方法2：自己没想到，实话实说。
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
s = "qwert"
ls1 = li+ list(s)
print(ls1)
'''
# 请删除列表中的元素"ritian",并输出删除后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.remove('ritian')
print(li)
'''
# 请删除列表中的第2个元素，并输出删除元素后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.pop(1)
print(li)
'''
# 请删除列表中的第2至第4个元素，并输出删除元素后的列表
'''
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
del li[1:4]
print(li)
'''
# 4.请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"（步长、while、for）
'''
name = "小黑半夜三点在被窝玩愤怒的小鸟"
print(name[::-1])
'''
'''
name = "小黑半夜三点在被窝玩愤怒的小鸟"
name_len = len(name)
count = -1
text = ''
while count >= -name_len:
    t1 = name[count]
    text += t1
    count -= 1
print(text)
'''
'''
name = "小黑半夜三点在被窝玩愤怒的小鸟"
name_len = len(name)
text = ''
for i in range(name_len):
    text += name[-i - 1]
print(text)
'''

# 5.写代码，有如下列表，利用切片实现每一个功能
# li = [1, 3, 2, "a", 4, "b", 5,"c"]

# 通过对li列表的切片形成新的列表 [1,3,2]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[0:3]
print(li1)
'''

# 通过对li列表的切片形成新的列表 ["a",4,"b"]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[3:6]
print(li1)
'''

# 通过对li列表的切片形成新的列表 [1,2,4,5]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[0::2]
print(li1)
'''

# 通过对li列表的切片形成新的列表 [3,"a","b"]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[1:6:2]
print(li1)
'''

# 通过对li列表的切片形成新的列表 [3,"a","b","c"]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[1::2]
print(li1)
'''

# 通过对li列表的切片形成新的列表 ["c"]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[-1::1]
print(li1)
'''

# 通过对li列表的切片形成新的列表 ["b","a",3]
'''
li = [1, 3, 2, "a", 4, "b", 5, "c"]
li1 = li[-3::-2]
print(li1)
'''

# 6.请用代码实现循环输出元素和值：users = ["武沛齐","景女神","肖大侠"] ，如：
# 0 武沛齐
# 1 景女神
# 2 肖大侠
'''
users = ["武沛齐", "景女神", "肖大侠"]
users_len = len(users)
for i in range(0, users_len):
    print(i, users[i])
'''

# 7.请用代码实现循环输出元素和值：users = ["武沛齐","景女神","肖大侠"] ，如：
# 1 武沛齐
# 2 景女神
# 3 肖大侠
'''
users = ["武沛齐", "景女神", "肖大侠"]
users_len = len(users)
for i in range(0,users_len):
    print(i + 1, users[i])
'''

# 8.写代码，有如下列表，按照要求实现每一个功能。
# lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]

# 将列表lis中的"k"变成大写，并打印列表。
'''
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[2] = 'K'
print(lis)
'''

# 将列表中的数字3变成字符串"100"
'''
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[1] = '100'
lis[3][2][1][1] = '100'
print(lis)
'''

# 将列表中的字符串"tt"变成数字 101
'''
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3][2][1][0] = 100
print(lis)
'''

# 在 "qwe"前面插入字符串："火车头"
'''
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3].insert(0, '火车头')
print(lis)
'''

# 9.写代码实现以下功能
# 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品：
# 0,汽车
# 1,飞机
# 2,火箭
'''
googs = ['汽车', '飞机', '火箭']
googs_len = len(googs)
print('您可以选择的商品是：')
for i in range(0, googs_len):
    print(i, ',', googs[i])
'''

# 用户输入索引后，将指定商品的内容拼接打印，如：用户输入0，则打印 您选择的商品是汽车。
"""
googs = ['汽车', '飞机', '火箭']
googs_len = len(googs)
text = []
for i in range(0, googs_len):
    text += (i, googs[i])
num = input('''%d,%s
%d,%s
%d,%s
您可以选择以上商品：''' % (text[0], text[1], text[2], text[3], text[4], text[5],))
if num == '0':
    print('您选择的商品是汽车')
elif num == '1':
    print('您选择的商品是飞机')
elif num == '2':
    print('您选择的商品是火箭')
else:
    print('您的输入有误！')
"""
# 请教别人的
'''
googs = ['汽车', '飞机', '火箭']
count = 0
for i in googs:
    print(count, i)
    count += 1
out = int(input('您可以选择的商品是：'))
if out == 0 or out == 1 or out == 2:
    print('您选择的商品是%s' % (googs[out],))
else:
    print('您的输入有误')
'''

# 10.请用代码实现
# 利用下划线将列表的每一个元素拼接成字符串"a_l_e_x"
'''
li = "alex"
li1 = '_'.join(li)
print(li1)
'''

# 11.利用for循环和range找出 0 ~ 100 以内所有的偶数，并追加到一个列表。
'''
ls = []
for i in range(0, 100):
    if i % 2 == 0:
        ls.append(i)
print(ls)
'''

# 12.利用for循环和range 找出 0 ~ 50 以内能被3整除的数，并追加到一个列表。
'''
ls = []
for i in range(0, 50):
    if i % 3 == 0:
        ls.append(i)
print(ls)
'''

# 13.利用for循环和range 找出 0 ~ 50 以内能被3整除的数，并插入到列表的第0个索引位置，最终结果如下：
'''
ls = []
for i in range(0, 50):
    if i % 3 == 0:
        ls.insert(0, i)
print(ls)
'''

# 14.查找列表li中的元素，移除每个元素的空格，并找出以"a"开头，并添加到一个新列表中,最后循环打印这个新列表。
'''
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
ls1 = []
count = 0
for i in li:
    li[count] = li[count].strip()
    if li[count].startswith('a'):
        ls1.append(li[count])
    count += 1
print(li)
print(ls1)
'''

'''
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
li_len = len(li)
ls1 = []
for i in range(0, li_len):
    li[i] = li[i].strip()
    if li[i].startswith('a'):
        ls1.append(li[i])
print(li)
print(ls1)
for s in ls1:
    print(s)
'''

# 15.判断是否可以实现，如果可以请写代码实现。
# li = ["alex", [11, 22, (88, 99, 100,), 33], "WuSir", ("ritian", "barry",), "wenzhou"]

# 请将 "WuSir" 修改成 "武沛齐"
'''
li = ["alex", [11, 22, (88, 99, 100,), 33], "WuSir", ("ritian", "barry",), "wenzhou"]
li[2] = '武沛齐'
print(li)
'''

# 请将 ("ritian", "barry",) 修改为 ['日天','日地']
'''
li = ["alex", [11, 22, (88, 99, 100,), 33], "WuSir", ("ritian", "barry",), "wenzhou"]
li[3] = ['日天', '日地']
print(li)
'''

# 请将 88 修改为 87
'''
无法完成，元组不能修改。
'''

# 请将 "wenzhou" 删除，然后再在列表第0个索引位置插入 "文周"
'''
li = ["alex", [11, 22, (88, 99, 100,), 33], "WuSir", ("ritian", "barry",), "wenzhou"]
del li[-1]
li.insert(0, '文周')
print(li)
'''